草庐IT

JavaScript ES6 模块 + traceur

全部标签

JavaScript 模块模式 - 使用 "return this"怎么样?

在阅读了一些有关模块模式的内容后,我看到了几种返回您想要公开的属性的方法。除了私有(private)属性和方法之外,最常见的方法之一是在“return”语句中声明您的公共(public)属性和方法。一种类似的方式(“揭示”模式)是提供对您希望公开的属性和方法的简单引用。最后,我看到的第三种技术是在模块函数内创建一个新对象,在返回所述对象之前将新属性分配给该对象。这是一个有趣的想法,但需要创建一个新对象。所以我在想,为什么不直接使用this.propertyName来分配你的公共(public)属性和方法,最后使用returnthis呢?这种方式对我来说似乎更简单,因为您可以使用通常的v

javascript - 找不到 Angular 6 setTimeout 模块 : Error: Can't resolve 'timers'

我有一个问题。我想在2秒后以Angular使用setTimeout来调用一个函数,但我得到了这个:ERROR:Modulenotfound:Error:Can'tresolve'timers';thisismyfunction:login(user){console.log(user.value);this.loginService.loginUser(user.value);//this.user=this.loginService.getUser();setTimeout(()=>{this.user=this.loginService.getUser();},2000);if(t

javascript - 我正在试用 Grunt,需要一种简单的方法来连接我的模块

这是我第一次使用Grunt,我想让它结合我所有的js模块,每个模块都包装在一个立即执行的函数中,包含一个“usestrict”声明并将它们放入一个文件中,包装只有一个立即执行的函数,只有一个“使用严格”声明。这通常是如何完成的?我认为这是一个常见的用例?也许我以错误的方式处理事情?我是否应该使用其中一种模块加载格式(即commonjs、amd)所有这些文件将始终一起加载到浏览器中,所以如果人们通常这样做的话,我实际上不介意删除所有立即执行的函数。重要的部分是最终结果以某种方式包装,通过lint和单元测试并包含“使用严格”声明。(我应该澄清一下,我确实让它工作、检查、单元测试、连接和缩小

javascript - 从 Javascript 使用 Typescript 模块

我想使用Typescript模块创建一个项目,但允许它从vanillajavascript使用。假设它包含3个模块,每个模块包含一个类,A、B和C。即A.ts:exportdefaultclassA{/*things*/}B.ts:exportdefaultclassB{/*things*/}C.ts:exportdefaultclassC{/*things*/}所有这些都使用webpack构建并捆绑到一个dist.js文件中。我希望图书馆的用户能够做一些类似于varfoo=newLettersLibrary.A();我该怎么做,最终目标是能够利用typescript模块进行开发,但提

javascript - ES6 模块 - 为什么命名的 const 导出不是只读的

我去过readingaboutESmodules并进行实验并偶然发现了一个我无法解释的案例://settings.jsexportconstFOO=42;exportconstBAR=5;//main1.jsimport*assettingsfrom'./settings';settings.FOO=1;//main2.jsimport{FOO,BAR}from'./settings'FOO=1;在main1.js中,我可以通过settings变量覆盖const值,但在main2.js中我不能(正如预期的那样)。(理论上的)问题是为什么在第一种情况下可以覆盖const值?创建“只读Vi

javascript - 在 javascript 中使用像 requirejs 或 commonjs 模块这样的 AMD 有什么好处?

我阅读了很多关于AMD解决方案的文章,例如RequireJS或在Javascript中遵循CommonJS风格的模块加载器。假设我有一个分为以下几个部分的应用:依赖于我使用的框架的应用定义依赖于App定义和框架的模型1依赖应用程序定义的模型2、模型1和我的框架我可以将每个部分编写为RequireJS模块或通用JS模块,然后将我的项目拆分为我想要的文件,但是将每个部分编写为模块或将它们拆分为多个文件然后将它们加载到正确的顺序(以避免依赖性问题)可能将所有文件连接成一个大文件以减少HTTP请求(如r.js优化器所做的那样)? 最佳答案

javascript - 如何在 AngularJS 中声明子模块

在使用AngularJS处理大型项目时,我发现我喜欢按功能组织代码。这意味着当我有一些可识别的功能X(特别是如果它是可重用的)时,我创建目录X并将属于该功能的所有Controller、服务和其他部分放入其中。我还声明了一个名为X的新模块,并将目录X中的所有内容分配给该模块。目录结构看起来像这样:scripts/app.jscontrollers/services/directives/filters/X/controllers/services/directives/filters/在app.js中有一个主模块声明:angular.module('myApp',['X']);X/中的所

javascript - 为什么是模块模式?

我已经阅读了很多关于模块模式的文章。好的,它带来了结构、私有(private)方法等……但是使用下面的代码我可以在不使用它的情况下获得相同的行为。functionHuman(){//privatepropertiesvar_name='';var_age=0;//privatemethodsfunctioncreated(){console.log("Human"+_name+"called");};//publicthis.setName=function(name){_name=name;created();};}varh1=newHuman();h1.setName("John"

javascript - JavaScript 中的这三种模块模式实现有什么区别?

我见过以下三个代码块作为JavaScript模块模式的示例。有什么区别,为什么我会选择一种模式而不是另一种模式?模式一functionPerson(firstName,lastName){varfirstName=firstName;varlastName=lastName;this.fullName=function(){returnfirstName+''+lastName;};this.changeFirstName=function(name){firstName=name;};};varjordan=newPerson('Jordan','Parmer');模式二functi

module-pattern - 创建模块的多个实例

我以为我已经开始很好地理解JavaScript,但显然不是。让我用一个例子来解释我的问题。首先,我定义了以下模块:varTest=function(){varcounter=0;functioninit(){alert(counter);}return{counter:counter,init:init}};然后我创建了2个实例:vartest1=newTest();vartest2=newTest();现在我更新计数器变量(因为它是公共(public)的)并发出一些警报。到目前为止一切顺利。alert(test1.counter);//Alerts0test1.counter=5;a